#ifndef TONEREPRODUCTIONMODEL_H
#define TONEREPRODUCTIONMODEL_H

#include "MyColor.h"
#include <math.h>
#include <vector>

using namespace std;

const double EPSILON = 0.0000000000000001;

class ToneReproductionModel{
public:
	ToneReproductionModel(double _Ldmax, double _Lwmax);

	virtual void adjustScene(vector<MyColor>* pixels) = 0;

protected:
	virtual void calculateLd() = 0;
	void calculateLw(vector<MyColor>* pixels);
	double getLuminance(MyColor c);

	double Ldmax;
	double Lwmax;
	double Lw;
	double Ld;
};

#endif